home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / STvi 1.0.0.sit / STvi 1.0.0 f / jstevie.doc next >
Text File  |  1996-11-14  |  25KB  |  677 lines

  1.  
  2.     STEVIE - vi「を目指した」エディター
  3.  
  4.         ユーザーレファレンス - 3.69/J1.3/M1.0.0
  5.  
  6.         Tony Andrews 著     太田純 訳
  7.         (Macintosh 版 加筆  小山富夫)
  8.  
  9.         注意: このマニュアルは、全機種共通のものです
  10.  
  11.   1. 序章
  12.  
  13.     STEVIE は UNIX のエディター vi のインターフェースを真似てデ
  14.     ザインされたエディターです。この名前  (ST  Editor  for  VI
  15.     Enthusiasts)は、このエディターが最初に Atari ST のために書か
  16.     れたことから来ています。現在のバージョンでは  UNIX、Minix
  17.     (ST)、MS-DOS、OS/2 もサポートされていますが、名前はそのまま
  18.     にしてあります。
  19.  
  20.     このプログラムはここ2年間の徹夜ハッキングの成果です。元とな
  21.     ったバージョンは  Tim Thompson によって書かれ、USENET にポス
  22.     トされました。これを出発点に、私はデータ構造を完全に書き直し、
  23.     数々の機能を追加し、エディター全体の効率を改善しました。
  24.  
  25.     私はSTEVIE のことを vi「を目指した」エディターと述べました。
  26.     これは、あまりに多くを望む人々への警告です。とは言うものの、
  27.     全体としてこのエディターはかなり完全です。画面モードのコマン
  28.     ドはほぼすべてがサポートされており、より重要な ex コマンドの
  29.     いくつかもサポートされています。私は、細かい動作まで正しく行
  30.     われるようにすることによって、vi  に近い感触が得られるように
  31.     力を尽くしました。行の折り畳みが正しく行われるようにすること、
  32.     正しい操作コマンドのサポート、タブに対して正しい位置にカーソ
  33.     ルが置かれるようにすることなどは大変でしたが、エディターの使
  34.     用感をviに近付けるためにはとても役に立っています。私はまた、
  35.     オリジナルの設計には賛成できない場合でも、vi の振舞いから逸
  36.     脱したいという誘惑に何とか抵抗してきました。
  37.  
  38.     残された最大の問題は、編集バッファー全体がメモリー上で管理さ
  39.     れているということです。これにより、環境によっては編集できる
  40.     ファイルの大きさが制限されることがあります。その他不足してい
  41.     る機能には、名前付きバッファーとマクロなどがあります。実行速
  42.     度はおよそ満足できるものですが、画面更新のコードについてはよ
  43.     り効率的にすることが可能でしょう。この点は一般に、かなり遅い
  44.     システムでなければ感じられません。
  45.  
  46.     STEVIE は自由に配布してかまいません。ソースは著作権で守られ
  47.     ておらず、いかなる意味でも制限を与えられていません。読者がこ
  48.     のプログラムを他人に譲るなら、すべてのドキュメントを、できれ
  49.     ばソースも、含めてください。この点に特にこだわるつもりはあり
  50.     ませんが、私は STEVIE をかなり移植しやすいようにしてきました
  51.     し、できるだけ多くの人々がソースを見ることができるようになっ
  52.     て欲しいのです。
  53.  
  54.     このドキュメントの残りの部分では、このエディターの操作方法に
  55.     ついて述べています。すでに本物の vi に馴染んでいるユーザーに
  56.     対するレファレンスとなるように書かれています。
  57.  
  58.  
  59.   2. 形式
  60.  
  61.     次のコマンド形式が利用できます。
  62.  
  63.     stevie [ファイル ...]    指定されたファイルを編集する
  64.     stevie -t タグ        与えられたタグの位置から編集を開始する
  65.     stevie + ファイル    ファイルの末尾から編集を開始する
  66.     stevie +行番号 ファイル    指定行から編集を開始する
  67.     stevie +/パターン ファイル
  68.                 指定されたパターンを持つ行から編集を開始する
  69.  
  70.     コマンド行に(最初の形式を使って)複数のファイルを指定した場
  71.     合、:n コマンドによって次のファイル、:N によって前のファイル
  72.     に移ることができます。:rew を使えばファイルリストの先頭に戻
  73.     ることもできます。
  74.  
  75.     起動時実行ファイル (小山 加筆)
  76.         UNIX, Minix    .stevierc
  77.         TOS, OS/2, DOS    stevie.rc
  78.         Macintosh    _exrc
  79.  
  80.  
  81.   3. コマンドオプションの設定
  82.  
  83.     :set コマンドを使うと、各種パラメーターを設定することができ
  84.     ます。パラメーターはそれぞれ長い名前と省略名を持っており、い
  85.     ずれを使うこともできます。真偽値パラメーターは次のように設定
  86.     します。
  87.         set showmatch
  88.  
  89.     解除するときは次のようにします。
  90.         set noshowmatch
  91.  
  92.     数値パラメーターは次のように設定します。
  93.         set scroll=5
  94.  
  95.     複数のパラメーターを1つのコマンドで設定することもできます。
  96.         set novb sm report=1
  97.  
  98.     すべてのパラメーターの状態を見るときは、:set all としてくだ
  99.     さい。何も引数を与えずに :set とすると、変更されたパラメータ
  100.     ーだけが表示されます。利用できるパラメーターの名前、省略名、
  101.     初期値、説明を以下に示します。
  102.  
  103.     autoindent    省略名: ai、初期値: noai、タイプ: 真偽値
  104.             挿入モードで改行したとき、新しい行を直前の行と同
  105.             じコラムから始める。本物の vi と異なり、字下げの
  106.             位置より前まで削除することができる
  107.  
  108.     backup        省略名: bk、初期値: nobk、タイプ: 真偽値
  109.             ファイルに書き出す際に、バックアップファイルを残す
  110.  
  111.     errorbells    省略名: eb、初期値: noeb、タイプ: 真偽値
  112.             エラーメッセージが表示されるときにベルを鳴らす
  113.  
  114.     ignorecase    省略名: ic、初期値: noic、タイプ: 真偽値
  115.             文字列探索を行う場合に、英字の大小を区別しない
  116.  
  117.     lines        省略名: lines、初期値: lines=25、タイプ: 数値
  118.             画面上に実際に表示できる行数初期値は実際には計算
  119.             機に依存するが、一般には 25 である
  120.  
  121.     list        省略名: list、初期値: nolist、タイプ: 真偽値
  122.             タブと改行を表示文字として表示する
  123.  
  124.     modelines    省略名: ml、初期値: noml、タイプ: 真偽値
  125.             ファイル中のモード行の処理を許可する
  126.  
  127.     number        省略名: nu、初期値: nonu、タイプ: 真偽値
  128.             画面上の各行を行番号つきで表示する
  129.  
  130.     report        省略名: report、初期値: report=5、タイプ: 数値
  131.             操作が行われたことが報告される最小の行数
  132.  
  133.     return        省略名: cr、初期値: cr、タイプ: 真偽値
  134.             ファイルに書き出す際に行末を復帰・改行にする
  135.  
  136.     scroll        省略名: scroll、初期値: scroll=12、タイプ: 数値
  137.             ^D および ^U コマンドによってスクロールする行数
  138.  
  139.     showmatch    省略名: sm、初期値: nosm、タイプ: 真偽値
  140.             )、}、] が入力されたとき、対応する (、{、[ が画
  141.             面上にあれば、カーソルを短時間そこに移動すること
  142.             によって知らせる
  143.  
  144.     showmode    省略名: mo、初期値: nomo、タイプ: 真偽値
  145.             挿入モードにいるかどうかを最下行に表示する
  146.  
  147.     tabstop        省略名: ts、初期値: ts=8、タイプ: 数値
  148.             1文字のタブを表す空白の数
  149.  
  150.     terse        省略名: terse、初期値: noterse、タイプ: 真偽値
  151.             このオプションは現在のところ無視される。vi との
  152.             互換性のためだけに用意されている
  153.  
  154.     tildeop        省略名: to、初期値: noto、タイプ: 真偽値
  155.             これが設定されている場合、チルド ~ は(c、d、y
  156.             と同じように)オペレーターとして扱われる。設定さ
  157.             れていなければ通常どおりの動作を行う
  158.  
  159.     wrapscan    省略名: ws、初期値: ws、タイプ: 真偽値
  160.             文字列探索の際にファイルの一端に到達すると、もう
  161.             一方の端から探索を継続する
  162.  
  163.     vbell        省略名: vb、初期値: vb、タイプ: 真偽値
  164.             可能なら表示ベルを使う(novb ではベル音になる)
  165.  
  166.     環境変数 EXINIT を使うと、起動時の初期値を次のように変更する
  167.     ことができます。
  168.         UNIX などの場合        setenv EXINIT="set sm ts=4"
  169.         MS-DOS、OS/2 などの場合    set EXINIT=set sm ts:4 
  170.         Macintosh の場合    Edit-Preferences メニューで設定    
  171.  
  172.     backup パラメーターが設定されていれば、エディターは書き出す
  173.     すべてのファイルについてバックアップを保存します。ファイルに
  174.     書き出している間は、安全のため常にバックアップが保存されてい
  175.     ます。書き出しが終了した時点で、backup  パラメーターの設定に
  176.     よってバックアップファイルが削除されるかどうかが決まります。
  177.  
  178.     通常の行末が復帰・改行であるような環境(たとえば MS-DOS、
  179.     OS/2、TOS)では、return パラメーターを解除することによって、
  180.     行末が改行だけになるようにファイルを書き出させることができま
  181.     す。このパラメーターは UNIX 上では無視されます。
  182.  
  183.     linesパラメーターは、画面が何行あるかをエディターに伝えます。
  184.     これはたとえば  ST (や EGA アダプター付きの OS/2 機)のよう
  185.     に複数の画面解像度を持ったシステムでは有用です。lines パラメ
  186.     ーターを使うことにより、複数の画面サイズが簡単に扱えます。
  187.  
  188.  
  189.   4. 行編集コマンド
  190.  
  191.     STEVIE は、本物の vi が持つ行編集コマンドのいくつかをサポー
  192.     トしています。コマンドによっては行範囲の指定を前置きする必要
  193.     があります。行範囲を受け取るコマンドでは、次の行位置指定がサ
  194.     ポートされています。
  195.         行位置
  196.         行位置 + 数値
  197.         行位置 - 数値
  198.  
  199.     ここで「行位置」は次のいずれかです。
  200.         行番号
  201.         マーク(たとえば 'a あるいは 'b)
  202.         '.'(現在行)
  203.         '$'(最終行)
  204.  
  205.     行範囲 % は 1,$ の省略形という意味になります。
  206.  
  207.     4.1 モード行
  208.  
  209.     モード行はあまり知られていませんが、しばしば有用な vi の機能
  210.     です。この機能を使うには、ファイルの先頭あるいは末尾5行の中
  211.     に特別な文字列を置いておきます。ファイルを編集するとき、これ
  212.     らの文字列が見つかると、行編集コマンドとして入力されたかのよ
  213.     うに処理されます。これが有用となる1つの例として、ファイル単
  214.     位で  tabstop パラメーターを設定する場合があげられます。次は
  215.     モード行の例です。
  216.  
  217.         vi:set ts=4 noai:
  218.         ex:45:
  219.  
  220.     モード行は、vi あるいは ex という文字列のあとにコロンで囲ん
  221.     だコマンドを続けたものであると言うことができます。この行に他
  222.     のテキストがあってもよく、また複数のモード行があってもかまい
  223.     ません。複数のモード行がある場合、処理が行われる順序は保証さ
  224.     れません。
  225.  
  226.     モード行の処理を可能にするには、ml パラメーターを設定してお
  227.     きます。モード行の処理はエディターが起動された直後に行われる
  228.     ので、このパラメーターは環境変数 EXINIT の中で設定しておきま
  229.     す。なお、保安上の問題があるのでモード行の処理は標準では禁止
  230.     されています。
  231.  
  232.     4.2 大域コマンド
  233.  
  234.     大域コマンドのうち限られた形式のものがサポートされており、次
  235.     のコマンド形式が利用できます。
  236.  
  237.         g/パターン/X
  238.  
  239.     ここで X は d か p のいずれかであり、それぞれ与えられたパタ
  240.     ーンにマッチした行を削除あるいは表示します。行範囲が指定され
  241.     ると、その範囲の行だけがパターンにマッチするかどうか調べられ
  242.     ます。行範囲が指定されていなければ、すべての行が対象となりま
  243.     す。
  244.  
  245.     最後のコマンド文字が省略された場合、p が仮定されます。この場
  246.     合にはその前のスラッシュも省略できます。現在のバージョンでは、
  247.     大域コマンドによる行の削除に続く取り消し操作はサポートされて
  248.     いません。
  249.  
  250.     4.3 置換コマンド
  251.  
  252.     置換コマンドは強力な機構を提供しており、画面モードで直接行う
  253.     場合より複雑な置換を可能にします。このコマンドの一般的な形式
  254.     は次のとおりです。
  255.  
  256.         s/パターン/置換文字列/g
  257.  
  258.     指定された範囲の各行(範囲が指定されなければ現在行)について、
  259.     与えられた正規表現があるかどうか調べます。見つかると、パター
  260.     ンにマッチした文字列は与えられた置換文字列で置き換えられます。
  261.     置換文字列が空文字列のときは、パターンにマッチした文字列はす
  262.     べて削除されます。
  263.  
  264.     最後の g を指定するかどうかは任意であり、指定した場合、各行
  265.     に現れたすべてのパターンを置換することを示します。
  266.  
  267.     置換文字列中では、いくつかの特別な文字列が認識されます。アン
  268.     パーサンド  & は、マッチしたパターン全体で置き換わります。た
  269.     とえば、次のコマンドを使えばすべての foo や bar が二重引用符
  270.     で囲まれます。
  271.  
  272.         1,$s/foo|bar/"&"/g
  273.  
  274.     特別な文字列 ¥n (ここで n は1〜9の数字)は、パターン中の
  275.     対応する位置の括弧付き正規表現にマッチした文字列で置き換えら
  276.     れます。次のコマンドは、C の関数 foo の呼び出しにおける最初
  277.     の2つのパラメーターを交換します。
  278.  
  279.         1,$s/foo¥(([^,]*),([^,]*),/foo(¥2,¥1,/g
  280.  
  281.     大域コマンドと同様、現バージョンのエディターでは置換を取り消
  282.     すことができません。
  283.  
  284.     4.4 ファイル操作コマンド
  285.  
  286.     次の表は、サポートされているファイル操作コマンドと、他で記述
  287.     されていないいくつかの ex コマンドを示しています。
  288.  
  289.     :w        現在のファイルを書き出す
  290.     :wq        ファイルに書き出して終了する
  291.     :x        必要ならファイルに書き出して終了する
  292.     ZZ        :x と同じ
  293.  
  294.     :e file        指定されたファイルを編集する
  295.     :e!        変更を取り消して、現在のファイルを再編集する
  296.     :e #        もう一方のファイルを編集する
  297.  
  298.     :w ファイル    編集バッファーを指定されたファイルに書き出す
  299.     :x,yw ファイル    行 x から y までを指定されたファイルに書き出す
  300.     :r ファイル    指定されたファイルを編集バッファーに読み込む
  301.  
  302.     :n        次のファイルを編集する
  303.     :N        前のファイルを編集する
  304.     :rew        ファイルリストの先頭に戻る
  305.  
  306.     :f        現在のファイル名を表示する
  307.     :f 名前        現在のファイル名を変更する
  308.     :x=        行位置 x の行番号を表示する
  309.  
  310.     :ta タグ    指定されたタグに移動する
  311.     ^]        :ta と同じだが、カーソル位置の単語をタグとする
  312.  
  313.     :help        コマンド一覧を表示する
  314.     :ve        バージョン番号を表示する
  315.  
  316.     :sh        対話的にシェルを実行する
  317.     :!cmd        コマンドを実行する
  318.  
  319.     Atari ST の上では、<HELP> キーを押すことによっても:help コマ
  320.     ンドを実行することができます。実際にはこのコマンドは、サポー
  321.     トされていない機能について注が付けられた vi のコマンドの一覧
  322.     を表示します。
  323.  
  324.     以上のコマンドは vi とほぼ同様の動作をします。ほとんどのコマ
  325.     ンドは、行われた変更を捨てるための !  後置子を(必要なら)サ
  326.     ポートしています。
  327.  
  328.  
  329.   5. 文字列探索
  330.  
  331.     文字列探索は vi と同様にサポートされており、通常の正規表現構
  332.     文を使うことができます。これは、Henry Spencer の正規表現ライ
  333.     ブラリーに手を加えたものを使うことによって行われます。私はラ
  334.     イブラリーの外部にコードを加え、¥<  および ¥> の拡張をサポー
  335.     トするようにしました。パラメーター ignorecase を設定すれば、
  336.     すべての文字列探索において英文字の大小を無視させることができ
  337.     ます。
  338.  
  339.  
  340.   6. オペレーター
  341.  
  342.     vi のオペレーター(d、c、y、!  、<、>)は真のオペレーターと
  343.     して働きます。パラメーター  tildeop が設定されていれば、チル
  344.     ドコマンドもオペレーターとして使うことができます。このパラメ
  345.     ーターは標準では設定されていません。
  346.  
  347.  
  348.   7. タグジャンプ
  349.  
  350.     タグジャンプは実装されており、かなり単純なバージョンの ctags
  351.     がエディターとともに提供されています。現バージョンの  ctags
  352.     は、特定の(しかしよく使われる)形式で書かれた関数とマクロを
  353.     探し出します。詳細な議論についてはctags.doc をご覧ください。
  354.  
  355.  
  356.   8. システム特有部分の説明
  357.  
  358.     以下の節では STEVIE が移植されたシステムに特有な付加的な情報
  359.     について述べています。
  360.  
  361.     8.1 Atari ST
  362.     <<TOS>>
  363.     3種類の解像度すべてについてテストされていますが、低解像度と高解像
  364.     度については中解像度ほどテストされていません。50行高解像度モード
  365.     では lines パラメーターを50に設定することによって 利用することが
  366.     できます。 別のやり方として、環境変数 LINES を設定しておくこともで
  367.     きます。エディターが自分から画面の行数を設定することはありません。
  368.     単に指定された行数を使って動作を行うだけです。
  369.  
  370.     矢印キー、また <INSERT>、<HELP>、<UNDO> キーはいずれも適切にマッピ
  371.     ングされています。
  372.  
  373.     <<Minix>>
  374.     Minix の下でもかなり同じ動作をするようになっていますが、キーボード
  375.     マッピングの多くはサポートされていません。
  376.  
  377.     8.2 UNIX
  378.     エディターは 4.2 BSD と同様に UNIX System V リリース3にも移植され
  379.     ています。これは、主にプロファイル用のデータを得るために行ったもの
  380.     であり、 UNIX バージョンが正しい動作を行うことにはそれほど労力を掛
  381.     けていません。termcap 関数はサポートされていますが、エディターはま
  382.     だ必要とする端末機能についてかなりやかましく、あまり賢くない端末に
  383.     対して賢い動作を行う努力はほとんどしません。
  384.  
  385.     8.3 OS/2
  386.     この移植を行った理由は、OS/2 開発キットに付属していた エディターが
  387.     まったくひどいものだったからです。ansi  モードがオンになっているこ
  388.     とを(ansi コマンドを使って)確認してください。OS/2 のコンソールド
  389.     ライバーは行の挿入・削除をサポートしていません。このため、STEVIEは
  390.     ドライバーを迂回して直接システムコールを行っています。これはすべて
  391.     システム依存の部分で行われているため、やっつけ仕事の部分はすくなく
  392.     とも1ヶ所にまとめられています。
  393.  
  394.     矢印キー、page up/down キー、home/end キーはすべて期待どおりに働き
  395.     ます。ファンクションキーにはいくつかの有用なマクロが割り当てられて
  396.     います。しかしこれは、マクロがエディターに正しくサポートされるまで
  397.     のことです。現在のマッピングは次のとおりです。are:
  398.  
  399.         F1    :N <復帰>
  400.         F2    :n <復帰>
  401.         F3    :e # <復帰>
  402.         F4    :rew <復帰>
  403.         F5    [[
  404.         F6    ]]
  405.         F7    C の宣言を擬似英語に変換する(cdecl を利用)
  406.         F8    英語風の宣言を C の形式に変換する(cdecl を利用)
  407.         F9    :x <復帰>
  408.         F10    :help <復帰>
  409.         S-F1    :N! <復帰>
  410.         S-F2    :n! <復帰>
  411.  
  412.     F7 および F8 のマクロは、 cdecl プログラムが利用できることを仮定し
  413.     ています。
  414.  
  415.     8.4 MS-DOS
  416.     STEVIE は Microsoft C 5.1 を使って MS-DOS 3.3 に移植されています。
  417.     キーボードのマッピングは  OS/2 と同じです。MS-DOS 版での唯一の問題
  418.     は、画面更新のコードが非効率的であることが遅い機械の上で苦痛ととも
  419.     に明らかになることです。
  420.  
  421.     MS-DOS 版では、行の挿入・削除が可能な拡張 コンソールドライバーが必
  422.     要です。配布されたコードは、広く入手可能と思われる nansi.sys  に対
  423.     応しています。
  424.  
  425.     8.5 Macintosh
  426.     ・File メニューは、ほぼ Mac 標準の動きをします(印刷機能未サポート)
  427.     ・Edit メニューの "Paste" はクリップボード上のテキストをカーソル位置
  428.       に挿入する
  429.     ・Edit メニューの "Undo" は u コマンドとほぼ同じ動きをする
  430.     ・スクロールバー/ウインドウのリサイズに対応している
  431.     ・未サポートの機能
  432.         1. :!<command>, :sh    別プログラムの実行
  433.  
  434.  
  435.   9. 実現されていない機能
  436.  
  437.     1. 利用できるメモリーより大きなファイルを編集する機能。
  438.         これは私の使っている機械では問題ではありませんが、
  439.         Minix-PC を使っている人々には相当な問題です。
  440.     2. ファンクションキーをサポートするマクロ。
  441.     3. より多くの set オプション。
  442.     4. その他のさまざまな機能。
  443.  
  444.  
  445.   10. 判明しているバグ、問題点
  446.  
  447.     1.  格納(yank)バッファーは静的に割り当てられたメモリーを使ってい
  448.         るため、大きな格納は失敗します。削除が格納バッファーより大きな
  449.         範囲にわたる場合、プログラムは実際にそれを行う前に確認の問い合
  450.         わせをします。こうなっているだけですから、テキストを移動すると
  451.         き限られた格納バッファーに戸惑わないでください。単に、一度によ
  452.         り小さな部分を移動するだけでよいのです。すべての内部バッファー
  453.         (格納、再実行、その他)は、メモリーを動的に割り当てるように変
  454.         更する必要があります。ただし、取り消しバッファーだけは現在でも
  455.         動的に割り当てられているため、すべての変更は取り消すことができ
  456.         ます。
  457.  
  458.     2.  挿入モードに長時間いると挿入バッファーがあふれることがある。こ
  459.         の場合、エディターはメッセージを表示してユーザーをコマンドモー
  460.         ドに投げ戻します。
  461.  
  462.     3.  現バージョンの置換および大域コマンド(すなわち :s/foo/bar ある
  463.         いは :g/foo/d )は取り消すことができません。これは現在の取り消
  464.         しのためのコード設計によるものです。これらのコマンドを取り消す
  465.         ためには、一般に途方もない量のメモリーを必要とします。
  466.  
  467.     4.  他にもいくつか、それほど腹立たしくない問題があります。
  468.  
  469.     5.  その他(追加: 小山富夫)
  470.         ・まれに暴走する(ファイルの最後削除時など)
  471.         ・X(カーソルの前文字消去) の複数回指定ができない
  472.         ・:<cmd>(ex コマンド) の一部の動作が unix と異なる
  473.  
  474.     6. Macintosh版固有の問題
  475.         ・全体的に処理が遅い(特に画面スクロール)
  476.         ・:!<command> ができない
  477.         ・Print 機能が未サポート
  478.  
  479.  
  480.   12. 最後に
  481.  
  482.     このエディターはかなり安定した状態に至っており、私がこのエディター
  483.     を使っているシステムでは十分な効率で動いています。このため、私は現
  484.     在ではかなりの割り合いで保守モードにいます。行わなければならないこ
  485.     とが、いまだにかなり残っています。画面更新のコードは依然まったく非
  486.     効率であり、格納(yank)・書き込み(put)のコードは依然として 原始
  487.     的です。私はまだバグの報告に興味があり、いまだ新しい機能を機会ある
  488.     ごとに追加していますが、変更の頻度は今では下がっています。
  489.  
  490.     私は、このエディターの元となったバージョンを書いたことについて
  491.     Tim  Thompson に感謝しています。彼のプログラムはよく構造化され、ま
  492.     ったく読みやすいものでした。作業のためのよい基盤を与えてくれたこと
  493.     に感謝します。自分自身の変更を送ってくれた多くの STEVIE のユーザー
  494.     にも感謝します。私が受け取った多くの変更は、私のサポートするすべて
  495.     のシステムに移植可能だったわけではありませんが、移植可能な実現方法
  496.     を可能な限りエディターに取り入れていこうと努力しているところです。
  497.  
  498.     もしもあなたがこのファイルを読んでいて、 STEVIE のソースコードが入
  499.     手できなければ、返送用の切手を付けてフロッピーディスクを下記の住所
  500.     に送れば入手できます。こちらが書き込めるフロッピーディスクは、
  501.         Atari ST(SS または DS)、
  502.         MSDOS(360Kあるいは 1.2M)
  503.     です。返送用の切手を入れることを忘れないでください。私はこのプログ
  504.     ラムで金儲けするつもりはありませんが、かといって損をするつもりもな
  505.     いのですから。
  506.  
  507.         Tony Andrews        UUCP: onecom!wldrdg!tony
  508.         5902E Gunbarrel Ave.
  509.         Boulder, CO 80301
  510.  
  511.  
  512.   文字機能一覧
  513.  
  514.     次の一覧は、エディターによって使われる各文字の意味を述べてい
  515.     ます。場合によっては、文字はコマンドモードと挿入モードでそれ
  516.     ぞれの意味を持っていますが、これらはすべて記述されています。
  517.  
  518.     ^@    空文字。どのモードでも使われない。この文字はファイル
  519.         中に現れることができない。これは vi の場合と同じであ
  520.         る
  521.     ^B    1画面戻る
  522.     ^D    半画面上にスクロールする
  523.     ^E    画面を1行上にスクロールする
  524.     ^F    1画面進む
  525.     ^G    :f コマンドと同じ。ファイル情報を表示する
  526.     ^H    (後退文字)コマンドモードでは1文字左に移動する。挿
  527.         入モードでは入力された最後の文字を消去する
  528.     ^J    カーソルを1行下に移動する
  529.     ^L    画面を消去・再表示する
  530.     ^M    (復帰文字)次の行の最初の非空白文字に移動する。挿入
  531.         モードでは入力のために新しい行を開始する
  532.     ^N    カーソルを1行下に移動する
  533.     ^P    カーソルを1行上に移動する
  534.     ^U    半画面下にスクロールする
  535.     ^Y    1行画面を1行下にスクロールする
  536.     ^[    エスケープはコマンドモードでは入力中のコマンドを取り
  537.         止める。また、挿入モードを終了するために使われる
  538.     ^]    カーソルが置かれている単語が示す名前を持つタグに移動
  539.         する
  540.     ^`    サポートされているなら、:e # と同じ(システムに依存
  541.         する)
  542.     空白    カーソルを1コラム右に移動する
  543.     !    フィルターオペレーターは常に、ある範囲の行に対して
  544.         操作を行う。それらの行をあるプログラムの入力として渡
  545.         し、それらをプログラムの出力によって置き換える。短縮
  546.         コマンド  !!  を使えば、(前置する回数で指定した)数
  547.         行をフィルターに掛けることができる。コマンド !  は最
  548.         後に実行されたコマンドで置き換えられるので、!!!   は
  549.         与えられた数の行を最後に指定されたコマンドに渡して実
  550.         行する
  551.     $    現在行の末尾に移動する
  552.     %    カーソルが括弧 ()、波括弧 {}、ブラケット [] の上にあ
  553.         れば、対応する括弧に移動する
  554.     '    直前に 'a あるいは 'b などでマークされた位置にカーソ
  555.         ルを移動する。カーソルはマークされた行の先頭に移動す
  556.         る。特別なマーク '' は「直前の文脈」を指す
  557.     +    コマンドモードでは復帰文字と同じ
  558.     ,    直前の t、T、f、F コマンドを逆向きに実行する
  559.     -    直前の行の最初の非空白文字に移動する
  560.     .    最後の編集コマンドを繰り返す
  561.     /    前向きの文字列探索コマンドを開始する。文字列探索は閉
  562.         じるスラッシュで終わっていてもよい。スラッシュ自身を
  563.         探すためには、探索文字列の中で ¥/ を用いる
  564.     0    現在行の先頭に移動する。繰り返しの回数としても使われ
  565.         る
  566.     1-9    コマンドに繰り返し回数を前置するために使う
  567.     :    ex コマンドを開始する
  568.     ;    直前の t、T、f、F コマンドを繰り返す
  569.     <    左シフトのオペレーター
  570.     >    右シフトのオペレーター
  571.     ?    / と同じだが、逆向きに探索する
  572.     A    現在行の後に追加を開始する
  573.     B    空白で区切られた単語1つだけ後ろに戻る
  574.     C    現在行のカーソル以降を変更する
  575.     D    現在行のカーソル以降を削除する
  576.     E    空白で区切られた単語の末尾に移動する
  577.     F    ある文字を現在行の中で逆向きに探す
  578.     G    指定された行番号の行に移動する(行番号省略時はファイ
  579.         ルの末尾)
  580.     H    画面上の先頭行の最初の非空白文字に移動する
  581.     I    現在行の最初の非空白文字の前に挿入を開始する
  582.     J    2つの行をつなぐ
  583.     L    画面上の最終行の最初の非空白文字に移動する
  584.     M    画面上の中央行の最初の非空白文字に移動する
  585.     N    最後の文字列探索を逆向きに実行する
  586.     O    新しい行を現在行の上に開き、挿入を開始する
  587.     P    格納・削除バッファーの内容を現在カーソル位置の直前に
  588.         挿入する
  589.     R    エスケープが入力されるまで、文字列を置き換える。挿入
  590.         モードと同様だが、挿入の代わりに置換を行う。置換モー
  591.         ドで改行を入力することは挿入モードと同じであるが、新
  592.         しい行で置換が継続される
  593.     T    与えられた文字を逆向きに探し、その手前まで移動する
  594.     U    現在行を変更前の状態に戻す
  595.     W    空白で区切られた単語1つだけ前に進む
  596.     X    カーソル直前の1文字を削除する
  597.     Y    現在行を格納するyy と同じ
  598.     ZZ    エディターを終了する。必要なら変更を保存する
  599.     [[    C の関数1つだけ後ろに戻る
  600.     ]]    C の関数1つだけ前に進む
  601.     ^    現在行の最初の非空白文字に移動する
  602.     `    これは ' と同様に与えられたマークに移動する。この2
  603.         つのコマンドの違いは、オペレーターとともに使われると
  604.         きに重要である。2つの違いは正しくサポートされている。
  605.         何を言っているのかわからないのならば、あなたにとって
  606.         は大したことではないので、気にする必要はない。
  607.     a    カーソルの後にテキストを追加する
  608.     b    単語1つだけ後ろに戻る
  609.     c    変更オペレーター
  610.     d    削除オペレーター
  611.     e    単語の末尾に移動する
  612.     f    ある文字を現在行の上で探す
  613.     h    1コラム左に移動する
  614.     i    カーソルの前にテキストを挿入する
  615.     j    1行下に移動する
  616.     k    1行上に移動する
  617.     l    1コラム右に移動する
  618.     m    現在位置にマークを設定する(たとえばma あるいは mb)
  619.     n    直前の文字列探索を繰り返す
  620.     o    新しい行を開き、テキストの挿入を開始する
  621.     p    格納・削除バッファーの内容をカーソルの後に書き込む
  622.     r    1文字を置き換える
  623.     s    1文字を文字列で置き換える
  624.     t    与えられた文字を現在行の上で前向きに探し、その手前ま
  625.         で移動する
  626.     u    直前の変更を取り消す
  627.     w    1単語前に移動する
  628.     x    カーソル位置の文字を削除する
  629.     y    格納オペレーター
  630.     z    現在行が先頭に(z復帰)、中央に(z. )、末尾に(z-)
  631.         来るように画面を書き直す
  632.     |    前置きされた数値で示されるコラム位置に移動する
  633.     ~    カーソル位置の文字(が英字なら)の大小を反転し、右に
  634.         移動する。パラメーター  tildeop が設定されていれば、
  635.         このコマンドはオペレーターとして働く
  636.  
  637.  
  638.   CONTENTS
  639.  
  640.             STEVIE - ユーザーガイド
  641.  
  642.                 CONTENTS
  643.  
  644.  
  645.     1.  序章 .............................................   1
  646.  
  647.     2.  エディターの起動 .................................   2
  648.  
  649.     3.  コマンドオプションの設定 .........................   2
  650.  
  651.     4.  行編集コマンド ...................................   4
  652.         4.1 モード行 .....................................   5
  653.         4.2 大域コマンド .................................   5
  654.         4.3 置換コマンド .................................   6
  655.         4.4 ファイル操作コマンド .........................   6
  656.  
  657.     5.  文字列探索 .......................................   7
  658.  
  659.     6.  オペレーター .....................................   8
  660.  
  661.     7.  タグジャンプ .....................................   8
  662.  
  663.     8.  システム特有部分の説明 ...........................   8
  664.         8.1  Atari ST ....................................   8
  665.         8.2  UNIX ........................................   8
  666.         8.3  OS/2 ........................................   9
  667.         8.4  MSDOS .......................................   9
  668.         8.5  Macintosh ...................................   9
  669.  
  670.     9.  実現されていない機能 .............................  10
  671.  
  672.     10. 判明しているバグ、問題点 .........................  10
  673.  
  674.     11. 最後に ...........................................  11
  675.  
  676.     文字機能一覧 .........................................  12
  677.